关于 加密量化 回测 的快讯列表
| 时间 | 详情 |
|---|---|
|
2025-12-09 03:40 |
Python random.seed 符号位问题:seed(5) 等同 seed(-5),警惕AI与加密量化回测风险
据 @karpathy 所述,CPython 的 random.seed 会对整数种子取绝对值,导致 seed(3) 与 seed(-3) 产生完全相同的随机序列,因实现对 PyLong 参数调用绝对值而丢弃符号位(来源:twitter.com/karpathy/status/1998236299862659485;来源:github.com/python/cpython/blob/main/Modules/_randommodule.c#L321)。Python 文档说明如果 a 是 int 则直接使用,核心生成器为 MT19937,但仅保证相同种子生成相同序列,并未承诺不同种子一定产生不同序列(来源:docs.python.org/3/library/random.html)。Karpathy 指出其在 nanochat 中用正负号区分训练/测试种子,结果导致 train=test 的数据泄漏,带来严重的可复现性与过拟合风险(来源:twitter.com/karpathy/status/1998236299862659485)。对使用 Python 进行策略仿真、Monte Carlo 风险评估或机器学习评测的加密量化团队,应立即排查任何依赖正负号区分种子或默认 seed(n) != seed(-n) 的流程,以避免回测偏差与绩效失真(来源:twitter.com/karpathy/status/1998236299862659485)。建议措施包括避免以符号位区分种子、使用字符串或字节种子(在 version 2 下通过 SHA-512 哈希)、或按 Karpathy 提示显式编码符号位为 2*abs(n)+int(n<0)(来源:docs.python.org/3/library/random.html;来源:twitter.com/karpathy/status/1998236299862659485)。 |